feat(web): add Go campaign entries and route upgrades to Pricing - #7122
Conversation
|
🧪 This PR has changes that need a manual QA pass before merge — please hold off self-merging for now; we’ll loop QA in once it’s merge-ready (and design/product have signed off where applicable). |
nettee
left a comment
There was a problem hiding this comment.
I reviewed all 24 changed files and verified the live head. Focused campaign/UI tests (151 tests), direct web TypeScript, pnpm guard, and the production web build pass. I found two merge-safe follow-ups in the new campaign path; details are inline.
Generated-By: looper 0.11.8 (runner=fixer, agent=codex)
|
Looper fixer round complete — b6ff6d5
🔁 Powered by Looper · runner=fixer · agent=codex · An autonomous AI dev team for your GitHub repos. |
nettee
left a comment
There was a problem hiding this comment.
I reviewed all 24 changed files and the full changed ranges, including the Go campaign timing/audience split, locale bundles, Pricing routing, owner-only billing gates, and modal lifecycle. The live PR checks covering static validation, web workspace tests, E2E Vitest, and entry/settings visual suites are passing, and the earlier review threads are addressed or behaviorally verified.
Thanks for the careful campaign separation and complete locale coverage—this is a thoughtful, well-tested change.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.
nettee
left a comment
There was a problem hiding this comment.
I reviewed the live 26-file diff at 74c9890 and verified the focused campaign/routing tests (135 tests), web typecheck, pnpm guard, and the current PR checks. I found two merge-safe follow-ups in the new Go campaign modal; the concrete details are inline.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.Generated-By: looper 0.11.8 (runner=fixer, agent=codex)
|
Looper fixer round complete — b798073
🔁 Powered by Looper · runner=fixer · agent=codex · An autonomous AI dev team for your GitHub repos. |
nettee
left a comment
There was a problem hiding this comment.
I reviewed the complete 27-file changed range at b798073, including the Go campaign timing and audience split, all 19 locale bundles, Pricing routing, owner-only billing gates, modal lifecycle, responsive CSS, and the new visual boundary coverage. The live PR checks covering static validation, web tests, E2E Vitest, visual entry/settings, and UI P0 suites are passing; I also verified that the earlier localization and narrow-layout follow-ups are addressed in the final head.
Thanks for the careful campaign separation and thorough regression coverage—this is a thoughtful, well-finished change.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.
nettee
left a comment
There was a problem hiding this comment.
I reviewed all 27 changed files and the complete changed ranges at b798073. The Go campaign window and audience split, localized modal copy, Pricing routing, owner-only billing gates, responsive layout, and regression coverage are consistent. Focused web tests (150/150), web typecheck, pnpm guard, diff whitespace checks, the production web build, and the narrow/short viewport visual test passed; the PR checks are green as well.
Thanks for the careful campaign separation and thorough follow-up coverage—this is a thoughtful, polished change.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.
|
Thanks for the contribution. I completed QA validation for this PR. QA Acceptance Record Scope:
Scope-to-evidence:
Verified:
Risks / notes:
Conclusion:
|
nettee
left a comment
There was a problem hiding this comment.
I reviewed the complete 27-file changed range at ff507eaa765fb984c4b9460a8b3ff8c5dd3815d3, including the Go/DeepSeek audience split, Pricing routing, locale coverage, workspace billing gates, and responsive modal constraints. pnpm guard, pnpm typecheck, the full @open-design/web test suite, and the production web build all completed successfully; the repository's expected failure/skip counts remained unchanged. I found one merge-safe asset-reliability follow-up in the new Go modal; details are inline.
Generated-By: looper 0.11.8 (runner=fixer, agent=codex)
|
Looper fixer round complete — 67bc187
🔁 Powered by Looper · runner=fixer · agent=codex · An autonomous AI dev team for your GitHub repos. |
nettee
left a comment
There was a problem hiding this comment.
I reviewed all 27 changed files and the complete live ranges at 67bc187, including the Go campaign window/audience split, localized modal copy, checked-in model assets, Pricing routing, workspace billing permissions, and responsive layout. The focused web campaign/routing suite passed 143/143 tests, web typecheck passed, pnpm guard passed, and the added 600px/short-height visual campaign case passed.
Thanks for the careful campaign separation and thorough follow-up coverage—this is a thoughtful, polished change.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.Generated-By: looper 0.11.8 (runner=fixer, agent=codex)
|
Successfully created backport PR for |
…) (#7165) * feat(web): add Go campaign entries and route upgrades to pricing * fix(web): localize Go campaign copy Generated-By: looper 0.11.8 (runner=fixer, agent=codex) * feat(web): match Go campaign demo UI * test(web): align Go campaign source contract * fix(web): align Go modal model icons * fix(web): preserve Z.ai mark in Go modal list * fix(web): localize and fit Go campaign modal Generated-By: looper 0.11.8 (runner=fixer, agent=codex) * fix(web): clamp Go campaign modal height * fix(web): use local Go campaign icons Generated-By: looper 0.11.8 (runner=fixer, agent=codex) * test(e2e): stabilize Go campaign viewport assertion Generated-By: looper 0.11.8 (runner=fixer, agent=codex) (cherry picked from commit f6331fb) Co-authored-by: Ray Xi <2667192167@qq.com>















































Why
The desktop/web workbench still sent its green campaign badge and generic upgrade affordances to Cloud's plan-selection modal. The confirmed Go launch flow uses public Pricing as the single comparison surface, while keeping the already-live DeepSeek campaign for paid users.
This PR implements that split in the OpenDesign client and removes the remaining live client paths that could construct a generic
billing=planmodal link.What users will see
2026-08-20 20:00–2026-09-03 20:00(UTC+8).Go 首月 $5 · 无限用, and it reuses the existing DeepSeek campaign badge position and capsule style.https://open-design.ai/pricing/.Surface area
odsubcommand or flag, newtools-dev/tools-packflag, or newOD_*env var/api/*endpoint, new SSE event, or changed shape inpackages/contractsskills/,design-systems/,design-templates/, orcraft/, or change to the skills protocolpackage.jsonScreenshots
Actual workbench runtime with the Go launch modal and reused top-right campaign entry:
Bug fix verification
apps/web/tests/runtime/amr-guidance.test.ts,apps/web/tests/components/team-console-url.test.ts, and the affected component routing tests.Validation
pnpm guardpnpm typecheckpnpm --filter @open-design/web test— 630 files passed; 6,637 tests passed, 1 expected failure, 11 skippedpnpm --filter @open-design/web exec vitest run -c vitest.config.ts --maxWorkers=2 tests/campaigns/deepseek-v4-flash.test.ts tests/campaigns/go-plan.test.ts tests/campaigns/deepseek-v4-flash-modal.test.tsx tests/campaigns/deepseek-v4-flash-ui-contract.test.ts— 4 files / 34 tests passedpnpm --filter @open-design/web exec vitest run -c vitest.config.ts --maxWorkers=2 --shard=1/2— 315 files passed; 3,381 tests passed, 4 skippedpnpm --filter @open-design/web typecheckpnpm --filter @open-design/web build1280×720